﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CapaLogica.CL.Usuario;

namespace CapaLogica.CL.ComentarioEntrada
{
    public class GestorComentarioEntrada
    {  


        public static void crearComentario(String pcomentario, int pIdEntrada)
        {
            try
            {
                int idUsuario = Session.Id;

                ComentarioEntradaPersistente persistente = new ComentarioEntradaPersistente();

                 persistente.crearComentarioEntrada(pIdEntrada, pcomentario, idUsuario);


            }
            catch (Exception ex)
            {
                throw ex;
            }
        }


        public static List<Dictionary<String, String>> buscarComentariosEntrada(int pidEntrada)
        {
            try
            {
                ComentarioEntradaPersistente persistenteComentario = new ComentarioEntradaPersistente();
                List<EsComentarioEntrada> listaComentarios = persistenteComentario.listarComentariosEntrada(pidEntrada);



                List<Dictionary<String, String>> datosComentarios = new List<Dictionary<string, string>>();

                Dictionary<String, String> comentario = new Dictionary<string, string>();

                foreach (EsComentarioEntrada temp in listaComentarios)
                {
                    comentario = new Dictionary<string, string>();

                    comentario.Add("id", temp.IdComentario);
                    comentario.Add("comentario", temp.Comentario);
                    comentario.Add("fecha", temp.Fecha);
                    comentario.Add("modificado", temp.Modificado + "");
                    comentario.Add("fechamodificacion", temp.FechaModificado);
                    comentario.Add("idUsuario", temp.IdUsuario);
                    comentario.Add("usuario", temp.NombreUsuario);
                    comentario.Add("rol", temp.NombreRol);

                    datosComentarios.Add(comentario);
                }

                return datosComentarios;
            }
            catch (Exception)
            {
                throw;
            }

        }


        public static List<Dictionary<String, Object>> listarComentariosEntrada(int pidEntrada)
        {
            try
            {

                List<EsComentarioEntrada> comentarios = new ComentarioEntradaPersistente().listarComentariosEntrada(pidEntrada);
                List<Dictionary<String, Object>> datosComentarios = new List<Dictionary<string, Object>>();
                Dictionary<String, Object> comentario = null;

                foreach (EsComentarioEntrada temp in comentarios)
                {
                    comentario = new Dictionary<String, Object>();
                    comentario.Add("id", temp.IdComentario);
                    comentario.Add("comentario", temp.Comentario);
                    comentario.Add("fecha", temp.Fecha);
                    comentario.Add("modificado", temp.Modificado + "");
                    comentario.Add("fechaModificado", temp.FechaModificado);
                    comentario.Add("idUsuario", temp.IdUsuario);
                    comentario.Add("nombreUsuario", temp.NombreUsuario);

                    datosComentarios.Add(comentario);
                }

                return datosComentarios;
            }
            catch (Exception)
            {
                throw;
            }

        }



        public static Boolean eliminarComentarioEntrada(int pIdComentario)
        {
            try
            {
                ComentarioEntradaPersistente persistente = new ComentarioEntradaPersistente();

                persistente.eliminarComentarioEntrada(pIdComentario, Session.Id);
                return true;
            }
            catch (Exception ex)
            {

                throw ex;
            }

        }
    }
}
